/**
 * 暴力匹配子串在主串的位置
 * @param {String} main 主串
 * @param {String} sub 子串
 * @returns 子串在主串中首次出现的位置，若匹配失败返回-1
 */
function violentMatchIndexOf(main, sub) {
	let i = 0;
	let j = 0;
	while (i < main.length && j < sub.length) {
		// 开始遍历每一个字符进行比较
		// 如果当前字符相等，则i，j向后移一位继续比较
		if (main[i] === sub[j]) {
			i++;
			j++;
		} else {
			// 否则，i回退到i这一趟最开始匹配时的后一位，j回退到0
			i = i - j + 1;
			j = 0;
		}
	}
	// 比较完毕，如果说j现在大于子串的长度 - 1（正常情况下匹配完成后j=sub的最后一个字符的索引+1，恰好等于sub长度值，因为字符串第一个字符索引是0），说明子串全部匹配完成，匹配成功
	if (j > sub.length - 1) {
		return i - sub.length;
	} else {
		// 否则说明匹配失败
		return -1;
	}
}

// 测试
console.log(violentMatchIndexOf('abcde', 'cd'));